package org.android.brasil.projetos.oktoberfest2011.view;

import java.util.List;

import org.android.brasil.projetos.oktoberfest2011.R;
import org.android.brasil.projetos.oktoberfest2011.negocio.model.Horario;
import org.android.brasil.projetos.oktoberfest2011.utils.Constantes;
import org.android.brasil.projetos.oktoberfest2011.utils.ControleDeBackground;
import org.android.brasil.projetos.oktoberfest2011.utils.DataUtil;

import android.content.Context;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.RelativeLayout;
import android.widget.TextView;

/**
 * 
 * @author júlio
 * 
 */
public class HorarioAdapter extends BaseAdapter {

	private LayoutInflater mInflater;
	private List<Horario> hors;
	private Context ctx;
	
	public HorarioAdapter(Context context, List<Horario> hor) {
		this.mInflater = LayoutInflater.from(context);
		this.hors = hor;
		ctx = context;
	}

	public int getCount() {
		return hors.size();
	}

	public Object getItem(int position) {
		return hors.get(position);
	}

	public long getItemId(int position) {
		return position;
	}

	public View getView(int position, View convertView, ViewGroup parent) {
		Horario hor = hors.get(position);
		convertView = mInflater.inflate(R.layout.horarios_item, null);

		TextView tvDia = (TextView) convertView.findViewById(R.idHorarios.tv_dia);

		TextView tvAbertura = (TextView) convertView.findViewById(R.idHorarios.tv_abertura);

		TextView tvFechamento = (TextView) convertView.findViewById(R.idHorarios.tv_fechamento);

		TextView tvProgramacao = (TextView) convertView.findViewById(R.idHorarios.tv_programacao);

		RelativeLayout rl = (RelativeLayout) convertView.findViewById(R.idHorarios.relativeLayout1);

		// Texto com sublinhado
		SpannableString content = new SpannableString(ctx.getResources().getString(R.string.ver_programacao));
		content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
		tvProgramacao.setText(content);

		ControleDeBackground.setBackgroundHorario(new View[] { rl }, new TextView[] { tvDia,
				tvAbertura, tvFechamento }, position, hor.getDia());

		if (DataUtil.ehHoje(hor.getDia())) {
			tvDia.setText(ctx.getResources().getString(R.string.hoje));
			tvDia.setTextSize(20f);
		} else {
			tvDia.setText(hor.getDia()
					+ ctx.getResources().getString(R.string._de_)
					+ DataUtil.retornarMesDoAno(Constantes.CALENDAR_MES_DA_OKTOBERFEST)
					+ " - "
					+ DataUtil.retornarDiaSemana(Constantes.ANO_DA_OKTOBERFEST,
							Constantes.CALENDAR_MES_DA_OKTOBERFEST, hor.getDia()));
		}

		String abertura =  ctx.getResources().getString(R.string.abertura) + DataUtil.formatarHora(hor.getAbertura());// + "h00";
		String fechamento =  ctx.getResources().getString(R.string.encerramento) + DataUtil.formatarHora(hor.getFechamento());// + "h00";

		tvAbertura.setText(abertura);
		tvFechamento.setText(fechamento);

		return convertView;
	}
}
